package com.xx.chat_room.config;

import com.xx.chat_room.websocket.ChatRoomWebSocketHandler;
import com.xx.chat_room.websocket.ChatRoomWebSocketInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

/**
 * @author fanjj
 * @date 2017/11/1
 */
@Configuration
@EnableWebSocket
public class WebSocketConfig extends WebMvcConfigurerAdapter implements WebSocketConfigurer {

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(chatRoomWebSocketHandler(), "/chatRoom").setAllowedOrigins("*").addInterceptors(new ChatRoomWebSocketInterceptor());;
        registry.addHandler(chatRoomWebSocketHandler(), "/chatRoom/sockjs").setAllowedOrigins("*").addInterceptors(new ChatRoomWebSocketInterceptor()).withSockJS();
    }

    @Bean
    public WebSocketHandler chatRoomWebSocketHandler() {
        return new ChatRoomWebSocketHandler();
    }
}
